//用户表单
var sexStates = Ext.create('Ext.data.Store', {
	fields : [ 'value', 'text' ],
	data : userModel.sex
});
var sexComboboxField = Ext.create('Ext.form.ComboBox', {
	fieldLabel : '性别',
	name : 'sex',
	displayField : 'text',
	valueField : 'value',
	store : sexStates,
	allowBlank : false,
	editable : false,
	anchor : '99%'
});
var passwordField = Ext.create('Ext.form.TextField', {
	fieldLabel : '密码',
	inputType : 'password',
	allowBlank : false,
	name : 'password',
	anchor : '99%'
});

var addUser_userPanel = Ext.create('Ext.form.Panel', {
	title : '用户信息',
	defaultType : 'textfield',
	labelwidth : 70,
	bodyStyle : 'padding:10px;border:0px',
	autoScroll : true,
	frame : false,
	items : [ {
		xtype : 'hidden',
		fieldLabel : 'ID',
		name : 'id'
	}, {
		fieldLabel : '账号',
		name : 'account',
		allowBlank : false,
		blankText : '帐号不能为空',
		anchor : '99%'
	}, passwordField, {
		fieldLabel : '用户姓名',
		name : 'realName',
		allowBlank : false,
		blankText : '',
		anchor : '99%'
	}, sexComboboxField, {
		fieldLabel : '电子邮件',
		name : 'email',
		allowBlank : false,
		blankText : '帐号不能为空',
		anchor : '99%'
	}, {
		fieldLabel : '手机',
		name : 'mobile',
		allowBlank : false,
		blankText : '帐号不能为空',
		anchor : '99%'
	}, {
		fieldLabel : '办公电话',
		name : 'officePhone',
		allowBlank : false,
		blankText : '帐号不能为空',
		anchor : '99%'
	}, {
		xtype : 'textarea',
		fieldLabel : '备注',
		name : 'remark',
		anchor : '99%'
	} ]
});

// 角色列表
var roleStore = Ext.create('Ext.data.Store', {
	storeId : 'addUser_roleStore',
	model : 'Role',
	proxy : {
		type : 'ajax',
		url : 'user/roleList',
		reader : {
			type : 'json',
			rootProperty : 'roleList'
		}
	},
	autoLoad : true
});

var addUser_RolePanel = Ext.create('Ext.grid.Panel', {
	title : '用户角色',
	autoScroll : 'auto',
	selModel : {
		selType : 'checkboxmodel'
	},
	loadMask : true,
	deferRowRender : false,
	stripeRows : true,
	bodyStyle : 'padding:0px;border:0px',
	columns : [/* new Ext.grid.RowNumberer(), */{
		hidden : true,
		header : '角色ID',
		dataIndex : 'roleId'
	}, {
		text : '角色名称',
		dataIndex : 'roleName',
		width : 200
	}, {
		text : '角色描述',
		dataIndex : 'roleDesc',
		width : 300,
	} ],
	store : roleStore
});



// 定义TAB区域
var addUserTab = Ext.create('Ext.tab.Panel', {
	activeTab : 0,
	defaults : {
		autoHeight : true
	},
	items : [ addUser_userPanel, addUser_RolePanel ]
});

// 定义窗口
var addUserWindow = Ext.create('Ext.window.Window', {
	title : '新建用户',
	width : 500,
	height : 400,
	layout : 'fit',
	items : addUserTab,
	closeAction : 'hide',
	glyph : 0xf007,
	plain : true,
	modal : true,
	resizable : true,
	buttons : [
			{
				text : '保存',
				handler : function() {
					
					var selections = addUser_RolePanel.getView().getSelectionModel().getSelection();
					var ids = [];
					for (var i = 0; i < selections.length; i++) {
						ids.push(selections[i].data.roleId);
					}
					if (ids.length == 0) {
						addUserTab.setActiveTab(addUser_RolePanel);
						Ext.Msg.alert("提示", "请至少为此用户分配一个角色!");
						return;
					}
					var form = addUser_userPanel.getForm();
					if (!form.isValid()) {
						addUserTab.setActiveTab(addUser_userPanel);
						return;
					}
					var params = {
						roleIds : ids
					};
					$.extend(params, form.getValues());
					if (params.password) {
						params.password = Ext.MD5(params.password);
					}
					Common.ajaxRequest({
						url : 'user/saveUser',
						params : params,
						callback : function(json) {
							addUserWindow.hide();
							userStore.reload();
							addUser_userPanel.getForm().reset();
							addUser_RolePanel.getSelectionModel().deselectAll();//取消选择的复选框
						}
					})

				}
			}, {
				text : '重置',
				handler : function() {

				}
			} ]
});